From: kfraser@localhost.localdomain Date: Wed, 29 Aug 2007 14:47:55 +0000 (+0100) Subject: ioemu: Avoid unaligned guest memory accesses on ia64. X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~14987^2~49 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https://%22%22/%22http:/www.example.com/cgi/%22https:/%22%22?a=commitdiff_plain;h=067b09326e896d93ca4e0bd240f771a03e51999a;p=xen.git ioemu: Avoid unaligned guest memory accesses on ia64. Signed-off-by: Alex Williamson Signed-off-by: Keir Fraser --- diff --git a/tools/ioemu/target-i386-dm/exec-dm.c b/tools/ioemu/target-i386-dm/exec-dm.c index 6a5eb5eaaa..0655eaaa2f 100644 --- a/tools/ioemu/target-i386-dm/exec-dm.c +++ b/tools/ioemu/target-i386-dm/exec-dm.c @@ -470,6 +470,12 @@ static void memcpy_words(void *dst, void *src, size_t n) #else static void memcpy_words(void *dst, void *src, size_t n) { + /* Some architectures do not like unaligned accesses. */ + if (((unsigned long)dst | (unsigned long)src) & 3) { + memcpy(dst, src, n); + return; + } + while (n >= sizeof(uint32_t)) { *((uint32_t *)dst) = *((uint32_t *)src); dst = ((uint32_t *)dst) + 1;